package com.hello.system.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.hello.common.core.annotation.Excel;
import com.hello.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 流媒体服务器配置对象 wvp_media_server
 * 
 * @author hello
 * @date 2025-09-29
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class WvpMediaServer extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private String id;

    /** 服务器IP地址 */
    @Excel(name = "服务器IP地址")
    private String ip;

    /** 服务器域名 */
    @Excel(name = "服务器域名")
    private String domain;

    /** 钩子IP地址 */
    @Excel(name = "钩子IP地址")
    private String hookIp;

    /** SDP IP地址 */
    @Excel(name = "SDP IP地址")
    private String sdpIp;

    /** 流媒体IP地址 */
    @Excel(name = "流媒体IP地址")
    private String streamIp;

    /** HTTP端口 */
    @Excel(name = "HTTP端口")
    private Long httpPort;

    /** HTTPS端口 */
    @Excel(name = "HTTPS端口")
    private Long httpSslPort;

    /** RTMP端口 */
    @Excel(name = "RTMP端口")
    private Long rtmpPort;

    /** RTMPS端口 */
    @Excel(name = "RTMPS端口")
    private Long rtmpSslPort;

    /** RTP代理端口 */
    @Excel(name = "RTP代理端口")
    private Long rtpProxyPort;

    /** RTSP端口 */
    @Excel(name = "RTSP端口")
    private Long rtspPort;

    /** RTSPS端口 */
    @Excel(name = "RTSPS端口")
    private Long rtspSslPort;

    /** FLV端口 */
    @Excel(name = "FLV端口")
    private Long flvPort;

    /** FLVS端口 */
    @Excel(name = "FLVS端口")
    private Long flvSslPort;

    /** WebSocket FLV端口 */
    @Excel(name = "WebSocket FLV端口")
    private Long wsFlvPort;

    /** WebSocket SSL FLV端口 */
    @Excel(name = "WebSocket SSL FLV端口")
    private Long wsFlvSslPort;

    /** 是否自动配置(0-否,1-是) */
    @Excel(name = "是否自动配置(0-否,1-是)")
    private Integer autoConfig;

    /** 密钥 */
    @Excel(name = "密钥")
    private String secret;

    /** 服务器类型 */
    @Excel(name = "服务器类型")
    private String type;

    /** 是否启用RTP(0-否,1-是) */
    @Excel(name = "是否启用RTP(0-否,1-是)")
    private Integer rtpEnable;

    /** RTP端口范围 */
    @Excel(name = "RTP端口范围")
    private String rtpPortRange;

    /** 发送RTP端口范围 */
    @Excel(name = "发送RTP端口范围")
    private String sendRtpPortRange;

    /** 录像辅助端口 */
    @Excel(name = "录像辅助端口")
    private Long recordAssistPort;

    /** 是否为默认服务器(0-否,1-是) */
    @Excel(name = "是否为默认服务器(0-否,1-是)")
    private Integer defaultServer;

    /** 钩子存活间隔(秒) */
    @Excel(name = "钩子存活间隔(秒)")
    private Long hookAliveInterval;

    /** 录像存储路径 */
    @Excel(name = "录像存储路径")
    private String recordPath;

    /** 录像保存天数 */
    @Excel(name = "录像保存天数")
    private Long recordDay;

    /** 转码后缀 */
    @Excel(name = "转码后缀")
    private String transcodeSuffix;

    /** 服务器ID */
    @Excel(name = "服务器ID")
    private String serverId;

    /** 状态：0-离线，1-在线 */
    @Excel(name = "状态：0-离线，1-在线")
    private Integer status;

    public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }
    public void setIp(String ip) 
    {
        this.ip = ip;
    }

    public String getIp() 
    {
        return ip;
    }
    public void setDomain(String domain) 
    {
        this.domain = domain;
    }

    public String getDomain() 
    {
        return domain;
    }
    public void setHookIp(String hookIp) 
    {
        this.hookIp = hookIp;
    }

    public String getHookIp() 
    {
        return hookIp;
    }
    public void setSdpIp(String sdpIp) 
    {
        this.sdpIp = sdpIp;
    }

    public String getSdpIp() 
    {
        return sdpIp;
    }
    public void setStreamIp(String streamIp) 
    {
        this.streamIp = streamIp;
    }

    public String getStreamIp() 
    {
        return streamIp;
    }
    public void setHttpPort(Long httpPort) 
    {
        this.httpPort = httpPort;
    }

    public Long getHttpPort() 
    {
        return httpPort;
    }
    public void setHttpSslPort(Long httpSslPort) 
    {
        this.httpSslPort = httpSslPort;
    }

    public Long getHttpSslPort() 
    {
        return httpSslPort;
    }
    public void setRtmpPort(Long rtmpPort) 
    {
        this.rtmpPort = rtmpPort;
    }

    public Long getRtmpPort() 
    {
        return rtmpPort;
    }
    public void setRtmpSslPort(Long rtmpSslPort) 
    {
        this.rtmpSslPort = rtmpSslPort;
    }

    public Long getRtmpSslPort() 
    {
        return rtmpSslPort;
    }
    public void setRtpProxyPort(Long rtpProxyPort) 
    {
        this.rtpProxyPort = rtpProxyPort;
    }

    public Long getRtpProxyPort() 
    {
        return rtpProxyPort;
    }
    public void setRtspPort(Long rtspPort) 
    {
        this.rtspPort = rtspPort;
    }

    public Long getRtspPort() 
    {
        return rtspPort;
    }
    public void setRtspSslPort(Long rtspSslPort) 
    {
        this.rtspSslPort = rtspSslPort;
    }

    public Long getRtspSslPort() 
    {
        return rtspSslPort;
    }
    public void setFlvPort(Long flvPort) 
    {
        this.flvPort = flvPort;
    }

    public Long getFlvPort() 
    {
        return flvPort;
    }
    public void setFlvSslPort(Long flvSslPort) 
    {
        this.flvSslPort = flvSslPort;
    }

    public Long getFlvSslPort() 
    {
        return flvSslPort;
    }
    public void setWsFlvPort(Long wsFlvPort) 
    {
        this.wsFlvPort = wsFlvPort;
    }

    public Long getWsFlvPort() 
    {
        return wsFlvPort;
    }
    public void setWsFlvSslPort(Long wsFlvSslPort) 
    {
        this.wsFlvSslPort = wsFlvSslPort;
    }

    public Long getWsFlvSslPort() 
    {
        return wsFlvSslPort;
    }
    public void setAutoConfig(Integer autoConfig) 
    {
        this.autoConfig = autoConfig;
    }

    public Integer getAutoConfig() 
    {
        return autoConfig;
    }
    public void setSecret(String secret) 
    {
        this.secret = secret;
    }

    public String getSecret() 
    {
        return secret;
    }
    public void setType(String type) 
    {
        this.type = type;
    }

    public String getType() 
    {
        return type;
    }
    public void setRtpEnable(Integer rtpEnable) 
    {
        this.rtpEnable = rtpEnable;
    }

    public Integer getRtpEnable() 
    {
        return rtpEnable;
    }
    public void setRtpPortRange(String rtpPortRange) 
    {
        this.rtpPortRange = rtpPortRange;
    }

    public String getRtpPortRange() 
    {
        return rtpPortRange;
    }
    public void setSendRtpPortRange(String sendRtpPortRange) 
    {
        this.sendRtpPortRange = sendRtpPortRange;
    }

    public String getSendRtpPortRange() 
    {
        return sendRtpPortRange;
    }
    public void setRecordAssistPort(Long recordAssistPort) 
    {
        this.recordAssistPort = recordAssistPort;
    }

    public Long getRecordAssistPort() 
    {
        return recordAssistPort;
    }
    public void setDefaultServer(Integer defaultServer) 
    {
        this.defaultServer = defaultServer;
    }

    public Integer getDefaultServer() 
    {
        return defaultServer;
    }
    public void setHookAliveInterval(Long hookAliveInterval) 
    {
        this.hookAliveInterval = hookAliveInterval;
    }

    public Long getHookAliveInterval() 
    {
        return hookAliveInterval;
    }
    public void setRecordPath(String recordPath) 
    {
        this.recordPath = recordPath;
    }

    public String getRecordPath() 
    {
        return recordPath;
    }
    public void setRecordDay(Long recordDay) 
    {
        this.recordDay = recordDay;
    }

    public Long getRecordDay() 
    {
        return recordDay;
    }
    public void setTranscodeSuffix(String transcodeSuffix) 
    {
        this.transcodeSuffix = transcodeSuffix;
    }

    public String getTranscodeSuffix() 
    {
        return transcodeSuffix;
    }
    public void setServerId(String serverId) 
    {
        this.serverId = serverId;
    }

    public String getServerId() 
    {
        return serverId;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("ip", getIp())
            .append("domain", getDomain())
            .append("hookIp", getHookIp())
            .append("sdpIp", getSdpIp())
            .append("streamIp", getStreamIp())
            .append("httpPort", getHttpPort())
            .append("httpSslPort", getHttpSslPort())
            .append("rtmpPort", getRtmpPort())
            .append("rtmpSslPort", getRtmpSslPort())
            .append("rtpProxyPort", getRtpProxyPort())
            .append("rtspPort", getRtspPort())
            .append("rtspSslPort", getRtspSslPort())
            .append("flvPort", getFlvPort())
            .append("flvSslPort", getFlvSslPort())
            .append("wsFlvPort", getWsFlvPort())
            .append("wsFlvSslPort", getWsFlvSslPort())
            .append("autoConfig", getAutoConfig())
            .append("secret", getSecret())
            .append("type", getType())
            .append("rtpEnable", getRtpEnable())
            .append("rtpPortRange", getRtpPortRange())
            .append("sendRtpPortRange", getSendRtpPortRange())
            .append("recordAssistPort", getRecordAssistPort())
            .append("defaultServer", getDefaultServer())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("hookAliveInterval", getHookAliveInterval())
            .append("recordPath", getRecordPath())
            .append("recordDay", getRecordDay())
            .append("transcodeSuffix", getTranscodeSuffix())
            .append("serverId", getServerId())
            .append("status", getStatus())
            .toString();
    }
}
